package lt2047

import (
	"strings"
	"unicode"
)
func valid(s string) bool {
    hasHyphens := false
    for i, ch := range s {
        if unicode.IsDigit(ch) || strings.ContainsRune("!.,", ch) && i < len(s)-1 {
            return false
        }
        if ch == '-' {
            if hasHyphens || i == 0 || i == len(s)-1 || !unicode.IsLower(rune(s[i-1])) || !unicode.IsLower(rune(s[i+1])) {
                return false
            }
            hasHyphens = true
        }
    }
    return true
}

func countValidWords(sentence string) (ans int) {
    for _, s := range strings.Fields(sentence) { // 按照空格分割
        if valid(s) {
            ans++
        }
    }
    return
}
 